/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Adkiraki;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.ResourceBundle;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;
import javax.faces.model.SelectItem;
import javax.jdo.PersistenceManager;

/**
 *
 * @author pauloferreira
 */
public class CategoriaBean {
    private String nome;
    
    // Construtor
    public CategoriaBean() {
        this.nome = "";
    }

    public String Salvar() {
        FacesContext context = FacesContext.getCurrentInstance();
        ResourceBundle bundle =
                ResourceBundle.getBundle("Adkiraki.mensagens",
                    context.getViewRoot().getLocale());

        String msg = "";
        String query = "";
        PersistenceManager pm = PMF.get().getPersistenceManager();
        List<Categoria> lCategoria;
        
        Date data = new Date();
        SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy");
        formatador.format(data);

        // Testar se Login caso já exista
        query = "select from " + Categoria.class.getName() + " where nome == '" + this.nome + "'";

        lCategoria = (List<Categoria>) pm.newQuery(query).execute();

        if (lCategoria.size() > 0){
            msg = bundle.getString("categoria_duplicate");
            context.addMessage (null, new FacesMessage(msg));
            pm.close();
            return null;
        }

        Categoria categoria = new Categoria(this.nome, true, data);
        pm.makePersistent(categoria);     
        pm.close();
        
        this.nome = "";
        
        return "produtocad";
    }

    public List<SelectItem> getListCategoria(){
        
        PersistenceManager pm = PMF.get().getPersistenceManager();
        String query = "select from " + Categoria.class.getName() + " where ativo == true";
        List<Categoria> lCategoria = (List<Categoria>) pm.newQuery(query).execute();
        
        List<SelectItem> itens = new ArrayList<SelectItem>(lCategoria.size());

        for(Categoria c : lCategoria){
           itens.add(new SelectItem(c.getCategoriaId(), c.getNome()));            
        }

        pm.close();
        
        return itens;
    }
    /**
     * @return the nome
     */
    public String getNome() {
        return nome;
    }

    /**
     * @param nome the nome to set
     */
    public void setNome(String nome) {
        this.nome = nome;
    }
}
